package com.ynet.middleground.mobile.approve.response;

import java.io.Serializable;
import java.util.List;

import com.ynet.middleground.approve.bean.BusinessModuleData;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 项目名：ifp-mobile-approve <br>
 * 包名：com.ynet.middleground.mobile.approve.response <br>
 * 类名：TaskDetailDTO <br>
 * 描述： 任务详情信息传输类
 * 
 * @author Suremotoo
 * @create 2021-03-22 15:37
 */
@Data
@ApiModel(value = "任务详情信息")
public class TaskDetailDTO implements Serializable {

    /**
     * 任务 id
     */
    @ApiModelProperty(value = "任务 id")
    private String id;

    /**
     * 任务处理人 如果该字段为空，则需要先拾取任务
     */
    @ApiModelProperty(value = "任务处理人 如果该字段为空，则需要先拾取任务")
    private String assignee;

    /**
     * 是否有权限处理该任务 true: 有 false: 无
     */
    @ApiModelProperty(value = "是否有权限处理该任务 true: 有 false: 无")
    private Boolean isAccess;

    /**
     * 是否是领取 true: 是 false: 否
     */
    @ApiModelProperty(value = "是否是领取 true: 是 false: 否")
    private Boolean isClaim;

    /**
     * 任务名称
     */
    @ApiModelProperty(value = "任务名称")
    private String name;

    /**
     * 任务描述
     */
    @ApiModelProperty(value = "任务描述")
    private String description;

    /**
     * 流程实例 id
     */
    @ApiModelProperty(value = "流程实例 id")
    private String processInstanceId;

    /**
     * 流程名称
     */
    @ApiModelProperty(value = "流程名称")
    private String processDefinitionName;

    /**
     * 流程发起人
     */
    @ApiModelProperty(value = "流程发起人")
    private String startUserId;

    /**
     * 流程发起人名称
     */
    @ApiModelProperty(value = "流程发起人名称")
    private String startUserName;

    /**
     * 流程发起人所属公司名称
     */
    @ApiModelProperty(value = "流程发起人所属公司名称")
    private String startUserCompany;

    /**
     * 流程发起渠道
     */
    @ApiModelProperty(value = "流程发起渠道")
    private String startChannel;

    /**
     * 流程发起渠道名称
     */
    @ApiModelProperty(value = "流程发起渠道名称")
    private String startChannelName;

    /**
     * 流程发起时间（时间戳）
     */
    @ApiModelProperty(value = "流程发起时间（时间戳）")
    private String startDate;

    /**
     * 流程发起人头像地址
     */
    @ApiModelProperty(value = "流程发起人头像地址")
    private String startUserAvatarUrl;

    /**
     * 流程优先级 0：一般 1：紧急
     */
    @ApiModelProperty(value = "流程优先级 0：一般 1：紧急")
    private Integer priority;

    /**
     * 是否等待指令
     */
    @ApiModelProperty(value = "是否等待指令")
    private Boolean isWait;

    /**
     * 当前审批流程实例是否结束
     */
    @ApiModelProperty(value = "当前审批流程实例是否结束")
    private Boolean processInstanceEnd;

    /**
     * 特殊提示，目前仅有：用印流程
     */
    @ApiModelProperty(value = "特殊提示，目前仅有：用印流程")
    private String specialTips;

    /**
     * 金控经办人员
     */
    @ApiModelProperty(value = "金控经办人员")
    private String qdpfOperator;

    /**
     * 金控经办人员姓名
     */
    @ApiModelProperty(value = "金控经办人员姓名")
    private String qdpfOperatorName;

    /**
     * 金控经办人员钉钉头像地址
     */
    @ApiModelProperty(value = "金控经办人员钉钉头像地址")
    private String qdpfOperatorAvatarUrl;

    /**
     * 是否需要上传文件
     */
    @ApiModelProperty(value = "是否需要上传文件")
    private Boolean isRequireUpload;

    /**
     * 是否需要对文件进行签章
     */
    @ApiModelProperty(value = "是否需要对文件进行签章")
    private Boolean isRequireSign;

    @ApiModelProperty(value = "当前节点待签章文件列表")
    private List<BusinessFormDataForFile> signFiles;
    /**
     * 是否需要选择下一节点任务处理人
     */
    @ApiModelProperty(value = "是否需要选择下一节点任务处理人")
    private Boolean isRequireNextAssignee;

    @ApiModelProperty(value = "是否需要回填放款验证码")
    private Boolean isLendersCaptcha;

    @ApiModelProperty(value = "是否需要选择放款方式")
    private Boolean isLoanDisbursementMethod;

    /**
     * 如有签章， e 签宝证书号 <br>
     * 注意：该证书信息取自业务数据中第一个签章文件，移动审批中仅使用 1 个签章信息，对业务数据中所有的待签章文件进行批量签章
     */
    @ApiModelProperty(value = "如有签章， e 签宝证书号    注意：该证书信息取自业务数据中第一个签章文件，移动审批中仅使用 1 个签章信息，对业务数据中所有的待签章文件进行批量签章")
    private String accountId;

    /**
     * 如有签章， 印模 id <br>
     * 注意：该证书信息取自业务数据中第一个签章文件，移动审批中仅使用 1 个签章信息，对业务数据中所有的待签章文件进行批量签章
     */
    @ApiModelProperty(value = "如有签章， 印模 id   注意：该证书信息取自业务数据中第一个签章文件，移动审批中仅使用 1 个签章信息，对业务数据中所有的待签章文件进行批量签章")
    private Integer sealId;

    /**
     * 审批详情业务数据
     */
    @ApiModelProperty(value = "审批详情中的业务数据集合", notes = "审批详情中的业务数据集合")
    private List<BusinessModuleData> businessData;

}
